package com.dragon.modules.yuegou.model.wallet;

import com.dragon.modules.yuegou.entity.wallet.Mer2memBoughtcardTradeEntity;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 商户到会员悦卡交易（会员自购的悦卡，商户向会员退款）模型类
 * 
 * @author pbuilder generated
 * @date 2019-06-03 15:20:36
 * @company sgy
 * @version 2.0
 * @see Length 长度限制
 * @see NotNull 对象非空
 * @see NotEmpty 字符串、集合、表、数组非空
 */
public class Mer2memBoughtcardTrade extends Mer2memBoughtcardTradeEntity {

	/**
	 * 构造一个空商户到会员悦卡交易（会员自购的悦卡，商户向会员退款）模型对象
	 */
	public Mer2memBoughtcardTrade(){
		super();
	}
	
	/**
	 * 依据实体对象的信息构造一个商户到会员悦卡交易（会员自购的悦卡，商户向会员退款）模型对象
	 * 
	 * @param entity 实体对象
	 */
	public Mer2memBoughtcardTrade(Mer2memBoughtcardTradeEntity entity){
		super(entity);
	}

	/**
	 * 依据其它对象的信息构造一个商户到会员悦卡交易（会员自购的悦卡，商户向会员退款）模型对象
	 * 
	 * @param other 其它对象
	 */
	public Mer2memBoughtcardTrade(Mer2memBoughtcardTrade other){
		super(other);
	}


	@Override
	public String getId() {
    	return id;
    }

    /**
	 * 设置会员悦卡交易记录ID
	 * 
	 * @param id 会员悦卡交易记录ID
	 * @return 当前对象
	 */
    public Mer2memBoughtcardTrade id(String id) {
    	this.id = id;
    	return this;
    }

	@Override
	public String getTradeId() {
    	return tradeId;
    }

    /**
	 * 设置交易号
	 * 
	 * @param tradeId 交易号
	 * @return 当前对象
	 */
    public Mer2memBoughtcardTrade tradeId(String tradeId) {
    	this.tradeId = tradeId;
    	return this;
    }

	@Override
	public String getMemberId() {
    	return memberId;
    }

    /**
	 * 设置会员ID（冗余）
	 * 
	 * @param memberId 会员ID（冗余）
	 * @return 当前对象
	 */
    public Mer2memBoughtcardTrade memberId(String memberId) {
    	this.memberId = memberId;
    	return this;
    }

	@Override
	public String getMemberWalletId() {
    	return memberWalletId;
    }

    /**
	 * 设置会员钱包ID（冗余）
	 * 
	 * @param memberWalletId 会员钱包ID（冗余）
	 * @return 当前对象
	 */
    public Mer2memBoughtcardTrade memberWalletId(String memberWalletId) {
    	this.memberWalletId = memberWalletId;
    	return this;
    }

	@Override
	public String getMemberCardId() {
    	return memberCardId;
    }

    /**
	 * 设置会员悦卡ID
	 * 
	 * @param memberCardId 会员悦卡ID
	 * @return 当前对象
	 */
    public Mer2memBoughtcardTrade memberCardId(String memberCardId) {
    	this.memberCardId = memberCardId;
    	return this;
    }

	@Override
	public String getMemberCardNo() {
    	return memberCardNo;
    }

    /**
	 * 设置会员悦卡卡号
	 * 
	 * @param memberCardNo 会员悦卡卡号
	 * @return 当前对象
	 */
    public Mer2memBoughtcardTrade memberCardNo(String memberCardNo) {
    	this.memberCardNo = memberCardNo;
    	return this;
    }

	@Override
	public String getCardTemplateId() {
    	return cardTemplateId;
    }

    /**
	 * 设置悦卡模板ID（冗余）
	 * 
	 * @param cardTemplateId 悦卡模板ID（冗余）
	 * @return 当前对象
	 */
    public Mer2memBoughtcardTrade cardTemplateId(String cardTemplateId) {
    	this.cardTemplateId = cardTemplateId;
    	return this;
    }

	@Override
	public String getMerchantId() {
    	return merchantId;
    }

    /**
	 * 设置商户ID（冗余）
	 * 
	 * @param merchantId 商户ID（冗余）
	 * @return 当前对象
	 */
    public Mer2memBoughtcardTrade merchantId(String merchantId) {
    	this.merchantId = merchantId;
    	return this;
    }

	@Override
	public String getMerchantWalletId() {
    	return merchantWalletId;
    }

    /**
	 * 设置商户钱包ID
	 * 
	 * @param merchantWalletId 商户钱包ID
	 * @return 当前对象
	 */
    public Mer2memBoughtcardTrade merchantWalletId(String merchantWalletId) {
    	this.merchantWalletId = merchantWalletId;
    	return this;
    }

	@Override
	public String getOrderNo() {
    	return orderNo;
    }

    /**
	 * 设置订单号
	 * 
	 * @param orderNo 订单号
	 * @return 当前对象
	 */
    public Mer2memBoughtcardTrade orderNo(String orderNo) {
    	this.orderNo = orderNo;
    	return this;
    }

	@Override
	public String getRefundNo() {
    	return refundNo;
    }

    /**
	 * 设置退款单号
	 * 
	 * @param refundNo 退款单号
	 * @return 当前对象
	 */
    public Mer2memBoughtcardTrade refundNo(String refundNo) {
    	this.refundNo = refundNo;
    	return this;
    }

	@Override
	public BigDecimal getAmount() {
    	return amount;
    }

    /**
	 * 设置交易金额
	 * 
	 * @param amount 交易金额
	 * @return 当前对象
	 */
    public Mer2memBoughtcardTrade amount(BigDecimal amount) {
    	this.amount = amount;
    	return this;
    }

	@Override
	public BigDecimal getCardAmountBefore() {
    	return cardAmountBefore;
    }

    /**
	 * 设置交易前悦卡余额
	 * 
	 * @param cardAmountBefore 交易前悦卡余额
	 * @return 当前对象
	 */
    public Mer2memBoughtcardTrade cardAmountBefore(BigDecimal cardAmountBefore) {
    	this.cardAmountBefore = cardAmountBefore;
    	return this;
    }

	@Override
	public BigDecimal getCardAmountAfter() {
    	return cardAmountAfter;
    }

    /**
	 * 设置交易后悦卡余额
	 * 
	 * @param cardAmountAfter 交易后悦卡余额
	 * @return 当前对象
	 */
    public Mer2memBoughtcardTrade cardAmountAfter(BigDecimal cardAmountAfter) {
    	this.cardAmountAfter = cardAmountAfter;
    	return this;
    }

	@Override
	public BigDecimal getMerchantAmountBefore() {
    	return merchantAmountBefore;
    }

    /**
	 * 设置交易前商户悦卡余额
	 * 
	 * @param merchantAmountBefore 交易前商户悦卡余额
	 * @return 当前对象
	 */
    public Mer2memBoughtcardTrade merchantAmountBefore(BigDecimal merchantAmountBefore) {
    	this.merchantAmountBefore = merchantAmountBefore;
    	return this;
    }

	@Override
	public BigDecimal getMerchantAmountAfter() {
    	return merchantAmountAfter;
    }

    /**
	 * 设置交易后商户悦卡余额
	 * 
	 * @param merchantAmountAfter 交易后商户悦卡余额
	 * @return 当前对象
	 */
    public Mer2memBoughtcardTrade merchantAmountAfter(BigDecimal merchantAmountAfter) {
    	this.merchantAmountAfter = merchantAmountAfter;
    	return this;
    }

	@Override
	public LocalDateTime getCreatedTime() {
    	return createdTime;
    }

    /**
	 * 设置交易时间
	 * 
	 * @param createdTime 交易时间
	 * @return 当前对象
	 */
    public Mer2memBoughtcardTrade createdTime(LocalDateTime createdTime) {
    	this.createdTime = createdTime;
    	return this;
    }
}
